#ifndef _SDLWINDOW_H_
#define _SDLWINDOW_H_

#include <Window/Window.h>
#include <SDL.h>
#include <unordered_map>

namespace Engine2D
{
    class SDLWindow : public Window
    {
    public:
        SDLWindow(WindowArgs args);
        virtual ~SDLWindow();

        void PollEvent() override;
        void * GetWindow() override { return (void*)m_window; }


    private:
        SDL_Window * m_window;
    
    public:
        static std::unordered_map<SDL_EventType, std::function<EventPtr(SDL_Event&)>> s_eventMap;
    };
} // namespace Engine2D


#endif